import {ADD_COUNT, ADD_TO_CART} from "./mutation-types";


export default {
  //actions参数是context和payLoad
  addCart(context, payLoad){

    //创建一个新的promise包起来
    return new Promise((resolve, reject) => {

      //1、先遍历判断是否存在
      // for (let item of state.cartList){
      //
      //   //如果list中有与新添加的iid相同
      //   if (item.iid === payLoad.iid){
      //
      //     //就让OP被赋值，也就是OP指向item，应该是因为这里的item也是一个指向,可见detail 198行的测试
      //     oldProduct = item
      //   }
      // }

      //使用find函数，参数函数是true，find会返回item；是false返回undefined
      let oldProduct = context.state.cartList.find(item=> item.iid === payLoad.iid)

      //2、添加商品
      //先判断是否已经存在OP，因为OP部位null就是上面的判断已经赋值了
      if (oldProduct){

        //不是新商品，那就数量加一
        // oldProduct.count += 1
        //调用mutation
        context.commit(ADD_COUNT, oldProduct)

        resolve('商品数量+1')

      } else {

        //是新商品那就添加一个count属性，并添加到cartList里
        payLoad.count = 1
        // state.cartList.push(payLoad)
        //调用mutation
        context.commit(ADD_TO_CART, payLoad)

        resolve('添加了新商品')
      }

    })


  }

}
